<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JSON</title>
    <script>
        var obj={"name":"孙悟空","age":18,"gender":"男"};//创建一个对象
        console.log(obj.gender);
       // var s= JSON.parse('{"id":"87b4a642-2016-3d69-a843-811f47b63df9","uri":"files\\/31\\/course\\/74467f19-c6f8-3a7c-a7f0-56c8acd71e30\\/resource\\/8fd6ce491f05e528de85de20ff2663da.mp4"}')
       // console.log(s);
        var obj1='{"name":"孙悟空","age":18,"gender":"男"}'; //JSON对象 属性名 比如name必须加双引号 其他的和JS语法一致
        console.log(typeof obj1);// 返回string
        var arr='[1,2,3,4,"hello",true]';//JSON数组
        var obj2='{"arr":[1,2,4,6]}';
        var arr1='[{"name":"孙悟空","age":18,"gender":"男"},{"name":"孙悟空","age":18,"gender":"男"}]';
        var json='{"name":"孙悟空","age":18,"gender":"男"}';
        //将JSON---->js对象  JSON.parse()
        var o=JSON.parse(json);
        console.log(o.name);//返回孙悟空

        var o1=JSON.parse(arr);
        console.log(o1[0]);
        //将js对象转换为JSON   用 JSON.stringify()
        var obj3={name:"猪八戒",age:18,gender: "男"};
        var j1=JSON.stringify(obj3);
        console.log(j1);//返回{"name":"猪八戒","age":18,"gender":"男"}
        console.log(typeof j1);// 返回string

        var str='alert("hello");';
        eval(str);//直接执行
        var str1='{"name":"白龙马","age":15}';
        var obj11=eval("("+str1+")");
        console.log(obj11);//返回{name: "白龙马", age: 15} 转换成JS格式
    </script>
</head>
<body>
<script>
    /*1.JSON就是特殊格式的字符串 这种字符串 都可以识别字符串 在开发中主要用来数据的交互
    *    JSON是javaScript Object Notation缩写   JS对象表示法
    * 2.JSON分类 1.对象{}
    *          2.数组[]
    * 3.JSON允许的值
    *       3.1. 字符串   String
    *       3.2. 数值     Number
    *       3.3.布尔值    Boolean
    *       3.4.null
    *       3.5.对象     Object 普通对象  不能是函数对象
    *       3.6.数组     Array
    *   将JSON字符串转换为JS对象，提供一个类叫JSON 这个可以将JSON转换为JS对象，也可以将JS对象转换为JSON
    *  4.将json转换为js  用JSON.parse(); 可以将JSON字符串转换为js对象
    *  5.将JS转换为JSON 用JSON.stringify() 可以将js对象转换为JSON字符串 需要一个JS对象作为参数
    *  6.JSON这个对象在IE7及以下版本的浏览器内 未定义，所以在这些浏览器中用 eval()这个函数
    *       eval()函数用来执行一段字符串形式的JS代码，并将执行结果返回
    *       如果在使用eval()函数中执行的字符串中含有{},它会将{}当成代码块
    *       如果不希望当成代码块解析，则需要在字符串前后各加一个()
    *       eval()函数很强大，可以执行一个字符串中的JS代码，但是开发中尽量不用，执行性能差 且有隐患
    *   7.如果兼容IE7及以下版本，则需要通过引入一个外部文件js文件来处理
    * */
</script>
</body>
</html>